<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>Match query | Elasticsearch Guide [7.7] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch Guide [7.7]">
<link rel="up" href="full-text-queries.html" title="Full text queries">
<link rel="prev" href="query-dsl-intervals-query.html" title="Intervals query">
<link rel="next" href="query-dsl-match-bool-prefix-query.html" title="Match boolean prefix query">
<meta name="DC.type" content="Learn/Docs/Elasticsearch/Reference/7.7">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="7.7">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="query-dsl.html">Query DSL</a></span>
»
<span class="breadcrumb-link"><a href="full-text-queries.html">Full text queries</a></span>
»
<span class="breadcrumb-node">Match query</span>
</div>
<div class="navheader">
<span class="prev">
<a href="query-dsl-intervals-query.html">« Intervals query</a>
</span>
<span class="next">
<a href="query-dsl-match-bool-prefix-query.html">Match boolean prefix query »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="query-dsl-match-query"></a>Match query<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h2>
</div></div></div>

<p>Returns documents that match a provided text, number, date or boolean value. The
provided text is analyzed before matching.</p>
<p>The <code class="literal">match</code> query is the standard query for performing a full-text search,
including options for fuzzy matching.</p>
<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="match-query-ex-request"></a>Example request<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_search
{
    "query": {
        "match" : {
            "message" : {
                "query" : "this is a test"
            }
        }
    }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/114.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="match-top-level-params"></a>Top-level parameters for <code class="literal">match</code><a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">&lt;field&gt;</code>
</span>
</dt>
<dd>
(Required, object) Field you wish to search.
</dd>
</dl>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="match-field-params"></a>Parameters for <code class="literal">&lt;field&gt;</code><a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">query</code>
</span>
</dt>
<dd>
<p>(Required) Text, number, boolean value or date you wish to find in the provided
<code class="literal">&lt;field&gt;</code>.</p>
<p>The <code class="literal">match</code> query <a class="xref" href="analysis.html" title="Text analysis">analyzes</a> any provided text before performing a
search. This means the <code class="literal">match</code> query can search <a class="xref" href="text.html" title="Text datatype"><code class="literal">text</code></a> fields for
analyzed tokens rather than an exact term.</p>
</dd>
<dt>
<span class="term">
<code class="literal">analyzer</code>
</span>
</dt>
<dd>
(Optional, string) <a class="xref" href="analysis.html" title="Text analysis">Analyzer</a> used to convert the text in the <code class="literal">query</code>
value into tokens. Defaults to the <a class="xref" href="specify-analyzer.html#specify-index-time-analyzer" title="How Elasticsearch determines the index analyzer">index-time
analyzer</a> mapped for the <code class="literal">&lt;field&gt;</code>. If no analyzer is mapped, the index’s
default analyzer is used.
</dd>
<dt>
<span class="term">
<code class="literal">auto_generate_synonyms_phrase_query</code>
</span>
</dt>
<dd>
<p>(Optional, boolean) If <code class="literal">true</code>, <a class="xref" href="query-dsl-match-query-phrase.html" title="Match phrase query">match phrase</a>
queries are automatically created for multi-term synonyms. Defaults to <code class="literal">true</code>.</p>
<p>See <a class="xref" href="query-dsl-match-query.html#query-dsl-match-query-synonyms" title="Synonyms">Use synonyms with match query</a> for an
example.</p>
</dd>
<dt>
<span class="term">
<code class="literal">fuzziness</code>
</span>
</dt>
<dd>
(Optional, string) Maximum edit distance allowed for matching. See <a class="xref" href="common-options.html#fuzziness" title="Fuzziness">Fuzziness</a>
for valid values and more information. See <a class="xref" href="query-dsl-match-query.html#query-dsl-match-query-fuzziness" title="Fuzziness in the match query">Fuzziness in the match query</a>
for an example.
</dd>
<dt>
<span class="term">
<code class="literal">max_expansions</code>
</span>
</dt>
<dd>
(Optional, integer) Maximum number of terms to which the query will
expand. Defaults to <code class="literal">50</code>.
</dd>
<dt>
<span class="term">
<code class="literal">prefix_length</code>
</span>
</dt>
<dd>
(Optional, integer) Number of beginning characters left unchanged for fuzzy
matching. Defaults to <code class="literal">0</code>.
</dd>
<dt>
<span class="term">
<code class="literal">fuzzy_transpositions</code>
</span>
</dt>
<dd>
(Optional, boolean) If <code class="literal">true</code>, edits for fuzzy matching include
transpositions of two adjacent characters (ab → ba). Defaults to <code class="literal">true</code>.
</dd>
<dt>
<span class="term">
<code class="literal">fuzzy_rewrite</code>
</span>
</dt>
<dd>
<p>(Optional, string) Method used to rewrite the query. See the
<a class="xref" href="query-dsl-multi-term-rewrite.html" title="rewrite parameter"><code class="literal">rewrite</code> parameter</a> for valid values and more
information.</p>
<p>If the <code class="literal">fuzziness</code> parameter is not <code class="literal">0</code>, the <code class="literal">match</code> query uses a <code class="literal">rewrite</code>
method of <code class="literal">top_terms_blended_freqs_${max_expansions}</code> by default.</p>
</dd>
<dt>
<span class="term">
<code class="literal">lenient</code>
</span>
</dt>
<dd>
(Optional, boolean) If <code class="literal">true</code>, format-based errors, such as providing a text
<code class="literal">query</code> value for a <a class="xref" href="number.html" title="Numeric datatypes">numeric</a> field, are ignored. Defaults to <code class="literal">false</code>.
</dd>
<dt>
<span class="term">
<code class="literal">operator</code>
</span>
</dt>
<dd>
<p>(Optional, string) Boolean logic used to interpret text in the <code class="literal">query</code> value.
Valid values are:</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">OR</code> (Default)
</span>
</dt>
<dd>
For example, a <code class="literal">query</code> value of <code class="literal">capital of Hungary</code> is interpreted as <code class="literal">capital
OR of OR Hungary</code>.
</dd>
<dt>
<span class="term">
<code class="literal">AND</code>
</span>
</dt>
<dd>
For example, a <code class="literal">query</code> value of <code class="literal">capital of Hungary</code> is interpreted as <code class="literal">capital
AND of AND Hungary</code>.
</dd>
</dl>
</div>
</dd>
<dt>
<span class="term">
<code class="literal">minimum_should_match</code>
</span>
</dt>
<dd>
<p>(Optional, string) Minimum number of clauses that must match for a document to
be returned. See the <a class="xref" href="query-dsl-minimum-should-match.html" title="minimum_should_match parameter"><code class="literal">minimum_should_match</code>
parameter</a> for valid values and more information.</p>
</dd>
<dt>
<span class="term">
<code class="literal">zero_terms_query</code>
</span>
</dt>
<dd>
<p>(Optional, string) Indicates whether no documents are returned if the <code class="literal">analyzer</code>
removes all tokens, such as when using a <code class="literal">stop</code> filter. Valid values are:</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">none</code> (Default)
</span>
</dt>
<dd>
No documents are returned if the <code class="literal">analyzer</code> removes all tokens.
</dd>
<dt>
<span class="term">
<code class="literal">all</code>
</span>
</dt>
<dd>
Returns all documents, similar to a <a class="xref" href="query-dsl-match-all-query.html" title="Match all query"><code class="literal">match_all</code></a>
query.
</dd>
</dl>
</div>
<p>See <a class="xref" href="query-dsl-match-query.html#query-dsl-match-query-zero" title="Zero terms query">Zero terms query</a> for an example.</p>
</dd>
</dl>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="match-query-notes"></a>Notes<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="query-dsl-match-query-short-ex"></a>Short request example<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h4>
</div></div></div>
<p>You can simplify the match query syntax by combining the <code class="literal">&lt;field&gt;</code> and <code class="literal">query</code>
parameters. For example:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_search
{
    "query": {
        "match" : {
            "message" : "this is a test"
        }
    }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/115.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="query-dsl-match-query-boolean"></a>How the match query works<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h4>
</div></div></div>
<p>The <code class="literal">match</code> query is of type <code class="literal">boolean</code>. It means that the text
provided is analyzed and the analysis process constructs a boolean query
from the provided text. The <code class="literal">operator</code> parameter can be set to <code class="literal">or</code> or <code class="literal">and</code>
to control the boolean clauses (defaults to <code class="literal">or</code>). The minimum number of
optional <code class="literal">should</code> clauses to match can be set using the
<a class="xref" href="query-dsl-minimum-should-match.html" title="minimum_should_match parameter"><code class="literal">minimum_should_match</code></a>
parameter.</p>
<p>Here is an example with the <code class="literal">operator</code> parameter:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_search
{
    "query": {
        "match" : {
            "message" : {
                "query" : "this is a test",
                "operator" : "and"
            }
        }
    }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/116.console"></div>
<p>The <code class="literal">analyzer</code> can be set to control which analyzer will perform the
analysis process on the text. It defaults to the field explicit mapping
definition, or the default search analyzer.</p>
<p>The <code class="literal">lenient</code> parameter can be set to <code class="literal">true</code> to ignore exceptions caused by
data-type mismatches,  such as trying to query a numeric field with a text
query string. Defaults to <code class="literal">false</code>.</p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="query-dsl-match-query-fuzziness"></a>Fuzziness in the match query<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h4>
</div></div></div>
<p><code class="literal">fuzziness</code> allows <em>fuzzy matching</em> based on the type of field being queried.
See <a class="xref" href="common-options.html#fuzziness" title="Fuzziness">Fuzziness</a> for allowed settings.</p>
<p>The <code class="literal">prefix_length</code> and
<code class="literal">max_expansions</code> can be set in this case to control the fuzzy process.
If the fuzzy option is set the query will use <code class="literal">top_terms_blended_freqs_${max_expansions}</code>
as its <a class="xref" href="query-dsl-multi-term-rewrite.html" title="rewrite parameter">rewrite
method</a> the <code class="literal">fuzzy_rewrite</code> parameter allows to control how the query will get
rewritten.</p>
<p>Fuzzy transpositions (<code class="literal">ab</code> → <code class="literal">ba</code>) are allowed by default but can be disabled
by setting <code class="literal">fuzzy_transpositions</code> to <code class="literal">false</code>.</p>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>Fuzzy matching is not applied to terms with synonyms or in cases where the
analysis process produces multiple tokens at the same position. Under the hood
these terms are expanded to a special synonym query that blends term frequencies,
which does not support fuzzy expansion.</p>
</div>
</div>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_search
{
    "query": {
        "match" : {
            "message" : {
                "query" : "this is a testt",
                "fuzziness": "AUTO"
            }
        }
    }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/117.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="query-dsl-match-query-zero"></a>Zero terms query<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h4>
</div></div></div>
<p>If the analyzer used removes all tokens in a query like a <code class="literal">stop</code> filter
does, the default behavior is to match no documents at all. In order to
change that the <code class="literal">zero_terms_query</code> option can be used, which accepts
<code class="literal">none</code> (default) and <code class="literal">all</code> which corresponds to a <code class="literal">match_all</code> query.</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_search
{
    "query": {
        "match" : {
            "message" : {
                "query" : "to be or not to be",
                "operator" : "and",
                "zero_terms_query": "all"
            }
        }
    }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/118.console"></div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="query-dsl-match-query-cutoff"></a>Cutoff frequency<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h4>
</div></div></div>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<h3>Deprecated in 7.3.0.</h3>
<p>This option can be omitted as the <a class="xref" href="query-dsl-match-query.html" title="Match query">Match</a> can skip blocks of documents efficiently, without any configuration, provided that the total number of hits is not tracked.</p>
</div>
</div>
<p>The match query supports a <code class="literal">cutoff_frequency</code> that allows
specifying an absolute or relative document frequency where high
frequency terms are moved into an optional subquery and are only scored
if one of the low frequency (below the cutoff) terms in the case of an
<code class="literal">or</code> operator or all of the low frequency terms in the case of an <code class="literal">and</code>
operator match.</p>
<p>This query allows handling <code class="literal">stopwords</code> dynamically at runtime, is domain
independent and doesn’t require a stopword file. It prevents scoring /
iterating high frequency terms and only takes the terms into account if a
more significant / lower frequency term matches a document. Yet, if all
of the query terms are above the given <code class="literal">cutoff_frequency</code> the query is
automatically transformed into a pure conjunction (<code class="literal">and</code>) query to
ensure fast execution.</p>
<p>The <code class="literal">cutoff_frequency</code> can either be relative to the total number of
documents if in the range from 0 (inclusive) to 1 (exclusive) or absolute if greater or equal to
<code class="literal">1.0</code>.</p>
<p>Here is an example showing a query composed of stopwords exclusively:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_search
{
    "query": {
        "match" : {
            "message" : {
                "query" : "to be or not to be",
                "cutoff_frequency" : 0.001
            }
        }
    }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/119.console"></div>
<div class="important admon">
<div class="icon"></div>
<div class="admon_content">
<p>The <code class="literal">cutoff_frequency</code> option operates on a per-shard-level. This means
that when trying it out on test indexes with low document numbers you
should follow the advice in <a href="/guide/en/elasticsearch/guide/2.x/relevance-is-broken.html" class="ulink" target="_top">Relevance is broken</a>.</p>
</div>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="query-dsl-match-query-synonyms"></a>Synonyms<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/query-dsl/match-query.asciidoc">edit</a>
</h4>
</div></div></div>
<p>The <code class="literal">match</code> query supports multi-terms synonym expansion with the <a class="xref" href="analysis-synonym-graph-tokenfilter.html" title="Synonym graph token filter">synonym_graph</a> token filter. When this filter is used, the parser creates a phrase query for each multi-terms synonyms.
For example, the following synonym: <code class="literal">"ny, new york"</code> would produce:</p>
<p><code class="literal">(ny OR ("new york"))</code></p>
<p>It is also possible to match multi terms synonyms with conjunctions instead:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /_search
{
   "query": {
       "match" : {
           "message": {
               "query" : "ny city",
               "auto_generate_synonyms_phrase_query" : false
           }
       }
   }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/120.console"></div>
<p>The example above creates a boolean query:</p>
<p><code class="literal">(ny OR (new AND york)) city</code></p>
<p>that matches documents with the term <code class="literal">ny</code> or the conjunction <code class="literal">new AND york</code>.
By default the parameter <code class="literal">auto_generate_synonyms_phrase_query</code> is set to <code class="literal">true</code>.</p>
</div>

</div>

</div>
<div class="navfooter">
<span class="prev">
<a href="query-dsl-intervals-query.html">« Intervals query</a>
</span>
<span class="next">
<a href="query-dsl-match-bool-prefix-query.html">Match boolean prefix query »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
